<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/4/27
 * Time: 14:12
 */
use think\Exception;
use think\Log;
use think\Request;

/**
 * 判断卡片有效期是否在当前月份内（是否当月到期）
 * @param string $timestamp  时间戳
 * @return bool true/false 返回结果
 */
function F_check_card_expire($timestamp = '')
{
    try {
        $d_one = date('Y-m',$timestamp);   // 卡片有效期所在的年月
        $d_two = date('Y-m',time());   // 当前时间的年月
        if($d_one != $d_two){
            return false;
        }
        return true;
    } catch (Exception $e) {
        Log::write('判断卡片当月到期异常：'.$e->getMessage(),'erroe');
    }
}

/**
 * 图片上传功能（暂不支持多张图片上传）
 * @param string $name 上传的文件名
 * @param int $size 上传图片的大小限制（默认2M）
 * @param array $type 上传图片类型
 * @return array $result 上传成功/失败信息
 */
function F_upload_picture($name, $size = 2, $type = ['jpg','jpeg','png'])
{
    try {
        $file = Request::instance()->file($name);
        // 验证上传图片大小
        $size = $size*1024*1024;
        if(!$file->checkSize($size)){   // 验证图片大小
            return json(['code'=>1,'msg'=>'请上传'.$size.'M以内的图片！']); //这里是为了获取图片大小
        }
        if(!$file->checkExt($type)){   // 验证图片类型
            return json(['code'=>2,'msg'=>'请上传符合格式的图片！']);  // 图片格式
        }
        //上传图片
        $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
        $str = $info->getSaveName();
        if(!$info){
            return json(['code'=>3,'msg'=>$info->getError()]);
        }
        $str = str_replace('\\','/',$str);   // 处理Windows下面目录分隔符的问题
        return json(['code'=>0,'msg'=>'/public/uploads/'.$str]);
    } catch (Exception $e) {
        Log::write('上传图片异常：'.$e->getMessage(),'error');
    }
}

/**
 * 生成随机订单号
 * 示例：Y+iot+01+1526021649+1234
 * 讲解：云池首字母+物联网卡缩写+订单类型+当前的时间戳+随机的4位数
 * @param string $order_type 订单类型
 **/
function F_creat_order_number($order_type = ''){
    try {
        if($order_type == ''){
            return false;
        }
        $rand_number = mt_rand(1000,9999);
        return 'Yiot'.$order_type.time().$rand_number;
    } catch (Exception $e) {
        Log::write('生成订单编号异常：'.$e->getMessage(),'error');
    }
}